// pages/login/index.js
import http from '../../utils/api' // 引入api接口管理文件
var app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    sendTime: '获取验证码',
    sendColor: '#666666',
    snsMsgWait: 60,
    phone: '',
    code: '',
  },
  // 获取验证码
  sendCode: function () {
    // 请求发送验证码
    http.getCode({
      data: {
        phone: this.data.phone
      },
      success: res => {
        if (res.code == 1) { // 成功的情况
          // 60秒后重新获取验证码
          this.setData({
            smsFlag: true,
            sendColor: '#cccccc',
            sendTime: this.data.snsMsgWait + 's后重发',
            snsMsgWait: this.data.snsMsgWait - 1
          });
          var inter = setInterval(function () {
            this.setData({
              smsFlag: true,
              sendColor: '#cccccc',
              sendTime: this.data.snsMsgWait + 's后重发',
              snsMsgWait: this.data.snsMsgWait - 1
            });
            if (this.data.snsMsgWait < 0) {
              clearInterval(inter)
              this.setData({
                sendColor: '#363636',
                sendTime: '获取验证码',
                snsMsgWait: 60,
                smsFlag: false
              });
            }
          }.bind(this), 1000);
          app.tip(res.info, 3000);
        } else {
          app.tip(res.info);
        }
      },
      fail: err => {
        console.log(err)
      }
    })
  },


  /**
   * 授权登录
   * @param {*} e 
   */
  getUserInfo: function (e) {
    let that = this;
    wx.login({
      success: res => {
        if (e.detail.errMsg == 'getUserInfo:ok') { //同意授权"
          let phone = that.data.phone;
          let code = that.data.code;
          if (phone == '') {
            app.tip('手机号不能为空!');
            return;
          } // 手机号不能为空
          if (code == '') {
            app.tip('验证码不能为空！');
            return;
          } // 验证码不能为空
          if (!(/^1[34578]\d{9}$/.test(phone))) {
            app.tip('手机号格式不正确!');
            return;
          }
          // 获取个人信息，防止用户信息解析失败
          wx.getUserInfo({
            success: resp => {
              // 请求预授权接口,添加数据
              // 发送 res.code 到后台换取 openId, sessionKey, unionId
              http.login_weapi({
                data: {
                  iv: resp.iv,
                  encryptedData: resp.encryptedData,
                  code: res.code,
                },
                success: res => {
                  if (res.code == 1) { // 成功请求登录
                    // 请求登录接口, 绑定数据
                    http.login({
                      data: {
                        phone: phone,
                        code: code,
                        apply_id: res.data.apply_id, // 预授权id
                      },
                      success: res => {
                        if (res.code == 1) { // 成功的情况
                          app.tip(res.info, 1500, 'success', {
                            'mask': true
                          });
                          wx.setStorageSync("login_token", res.data); // 存储token
                          setTimeout(function () {
                            //要延时执行的代码
                            wx.switchTab({
                              url: '../index/index',
                            })
                          }, 1500) //延迟时间
                        } else {
                          app.tip(res.info);
                        }
                      },
                      fail: err => {
                        console.log(err)
                      }
                    })
                  } else {
                    app.tip(res.info);
                  }
                },
                fail: err => {
                  console.log(err)
                }
              })
            }
          })
        } else {
          app.tip('拒绝授权!');
        }
      }
    })
  },

  /**
   * 获取手机号
   * @param {*} param 
   */
  getPhone: function (param) {
    let phone = param.detail.value.trim();
    this.setData({
      phone: phone
    });
  },

  /**
   * 获取验证码
   * @param {*} param 
   */
  getCode: function (param) {
    let code = param.detail.value.trim();
    this.setData({
      code: code
    });
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})